home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / programming / c / pmm / make / democonfig_eng / projekt < prev    next >
Text File  |  1999-06-14  |  11KB  |  220 lines

  1. ; This is a project. Here are a lot of setup's, the programs
  2. ; and the phadnames for source, objects und exe-files.
  3. ; The *-entry is a general setting, it will work as default
  4. ; The programs can use it or set own setup's
  5. ; $1, $2 ... $9 (This are variables for pmm.cfg)
  6. ; $$.c=  Phat to source, if not identical with PFAD=
  7. ;
  8. ; Important:
  9. ; This file is only use by the compiler. The pathes that will be
  10. ; scan for include by the depend-scanner comes from pmm.userincludes.
  11. ; pmm.userincludes: every line ONE scanpath. Don't set pathes to the
  12. ; compilerincludes. Only include/libraries if you really use that.
  13. ; Else alle include-.h-files are checked everytime you start compiling
  14. ; and that cost many time for nothing.
  15. ; After a compilerupdate where the .h-files really changed best work
  16. ; is to remake all files.
  17. ; Note, that the depend-pathes are used for all programs same. The
  18. ; sourcedirectory is everytime another and only the real include-dir's
  19. ; are scanned.
  20. ; The depend look everytime at the source-home-dir of the program.
  21. ; The compiler dosn't do that. Use the pseudoinclude -I$I to set
  22. ; up the homedir for the compiler. Pmm do this not alone, because
  23. ; I will be open in for all things in future.
  24. ;
  25. ; Lines with MAKE at the beginning:
  26. ; First the 1%, 2% ... etc. now become content
  27. ; MAKE=5    means: Start Pmm without a makeoption (like only make) internal
  28. ;                  use is equal 5 that set as 68040 in my default).
  29. ; MAKE:xyz=1,2,3   This means, if you start pmm with -o xyz the system
  30.                    make the type 1, 2 and 3. 
  31. ; MAKE:ALL=....    Important! This set what be happend if Pmm is starting
  32. ;                  with A, Q, I or -o ALL.
  33. ; This all are additives to pmm.cfg. But there are more things:
  34. ;
  35. ; Source und sonstige Files:
  36. ; $&.c ist source.c     Preprozessor Input  ( .c -> vcpp )
  37. ; $&.i ist soirce.i     Preprozessor Output ( .c -> vcpp -> .i )
  38. ; $&.a ist source.asm   Compiler Output     ( .i -> vbcc -> .asm )
  39. ; $&.s ist source.s     Compiler Output     ( .i -> vbcc -> .s (vsc) -> .asm )
  40. ; $&.o ist source.o     Assembler Output    ( .asm -> Assembler -> .o [ -> Linker] )
  41. ; $$   ist PROGRAMM     Letzter Output (Programm, Library, Lib etc.)
  42. ; vsc is the scheduler, look at the vbcc-doc's for warpos!!!
  43. ; All there things done automaticly by pmm. .i, .a, .s and .o will used to
  44. ; specify the path-names. $$ specify the program that will be create. If you
  45. ; specify none a.out will be createt at the actual sourcedir. Look downline
  46. ; $L defines the additive .Lib or .a-Files for the linker.
  47. ;
  48. ; Why here and not in Pmm.Cfg. Because the settings here in pmm.cfg are
  49. ; correct for most (all) times. Setup includes here must changed if you
  50. ; begin another project. In future I will support multiple projects and
  51. ; so it is easy to work at every project with his own way.
  52. ; Warum dieser Eintrag, ginge doch genauso gut in Pmm.Cfg?. Also do
  53. ; all things here that not generell standard at you amiga.
  54. ;
  55. ; Take notice of BEGIN * and look at the next textblock:
  56. ;
  57. :BEGIN *
  58. MAKE=5
  59. MAKE:60=5,6
  60. MAKE:PPC=7,8
  61. MAKE:ALL=1,2,3,4,5,6,7,8
  62. 1%$&.o=obj/000/
  63. 2%$&.o=obj/010/
  64. 3%$&.o=obj/020/
  65. 4%$&.o=obj/030/
  66. 5%$&.o=obj/040/
  67. 6%$&.o=obj/060/
  68. 7%$&.o=obj/ppc/
  69. 8%$&.o=obj/wos/
  70. $&.i=T:
  71. $&.a=T:
  72. $&.s=T:
  73. $$=a.out
  74. 1%$L=-Bsymbolic Lib:DOSLIB_000.Lib Lib:All.Lib
  75. 2%$L=-Bsymbolic Lib:DOSLIB_010.Lib Lib:All.Lib
  76. 3%$L=-Bsymbolic Lib:DOSLIB_020.Lib Lib:All.Lib
  77. 4%$L=-Bsymbolic Lib:DOSLIB_030.Lib Lib:All.Lib
  78. 5%$L=-Bsymbolic Lib:DOSLIB_040.Lib Lib:All_040.Lib
  79. 6%$L=-Bsymbolic Lib:DOSLIB_060.Lib Lib:All_040.Lib
  80. 7%$L=-Bdynamic Lib:DOSLIB_ppc.a Lib:All_ppc.a
  81. 8%$L=-Bsymbolic Lib:DOSLIB_wos.Lib Lib:All_wos.Lib
  82. $o=T:LinkOBJ
  83. :END
  84. ;    <- The END in the line bevor wil ending this config. From this line down
  85. ;       it is allowed to set a new BEGIN. $o is name of a temporary file.
  86. ;       after compile all source to object's the list of objectfiles will be
  87. ;       find in it. Pmm creates the list and it will be read from PmmLibr
  88. ;       or the Linkers. Look in Pmm.Cfg for more details.
  89. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  90. ;
  91. ; Demonstartion --- no function ---
  92. ; ---------------------------------
  93. ; DOSLIB is a SPECIAL, the linker will be replaced with PmmLibr.
  94. ;        This is the way, I ccreate all source-link-lib's. Only the
  95. ;        stub-libs will created by own way with batches. To go the
  96. ;         simple way with the link-list that will create by pmm I programming
  97. ;        the a function in PmmLibr, read object-list from file. So it is
  98. ;        very simple now. Look at PPC-Version with the ar-command. First
  99. ;        a complete ar-libr-batch must be created (with list an lformat).
  100. ;        After that the batch executed. Yes, it work, but not so quick and
  101. ;        not so "beatifull". To use a file as inputfile with PmmLibr use
  102. ;        the new option F. PmmLibr or a other libr with this option can
  103. ;        with minimal changes included in any compile-help-system. As example
  104. ;        the vc-tool from vbcc. Many things will work easy if the tools
  105. ;        good enough. That nobody create such a version (progamming is
  106. ;        very simple) can have only one reason. Nobody has the idea.
  107. ;        If you use PmmTool with filefunction with another link-system or
  108. ;        any other software, please let me know that. Hear from new ideas
  109. ;        or special usages help to build new own ideas.
  110. ;
  111. :BEGIN DOSLIB
  112. PFAD=Proj:DOSLIB
  113. $5=-Ivinclude: -IInclude: -I$I
  114. 7%$5=-Ivincludeppc: -IInclude: -I$I
  115. 8%$5=-Ivincludewos: -IInclude: -I$I
  116. 1%$$=Lib:DOSLIB_000.Lib
  117. 2%$$=Lib:DOSLIB_010.Lib
  118. 3%$$=Lib:DOSLIB_020.Lib
  119. 4%$$=Lib:DOSLIB_030.Lib
  120. 5%$$=Lib:DOSLIB_040.Lib
  121. 6%$$=Lib:DOSLIB_060.Lib
  122. 7%$$=Lib:DOSLIB_ppc.a
  123. 8%$$=Lib:DOSLIB_wos.Lib
  124. $o=T:LibList
  125. 1%L=PmmLibr F Lib:DosLib_000 $o
  126. 2%L=PmmLibr F Lib:DosLib_010 $o
  127. 3%L=PmmLibr F Lib:DosLib_020 $o
  128. 4%L=PmmLibr F Lib:DosLib_030 $o
  129. 5%L=PmmLibr F Lib:DosLib_040 $o
  130. 6%L=PmmLibr F Lib:DosLib_060 $o
  131. 7%L=List Proj:DOSLIB/obj/ppc/#?.o lformat="ppc-amigaos-ar q Lib:DOSLIB_ppc.a %s%s" >Ram:LibList
  132. 8%L=PmmLibr F Lib:DosLib_wos $o
  133. 5%X5=Execute Pmm:Batch/ManProto.s Proj:DOSLIB Include:DOSLIB_protos.h
  134. Y0=Execute Pmm:Batch/MakeStubAll.s
  135. 7%Y1=Execute Ram:LibList
  136. :END
  137. ;
  138. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  139. ;
  140. ; Next: the first real working demonstration. It will be create the program vc from the
  141. ;          sources, so as includet in vbcc. I only do a little bit more as the makefile
  142. ; PFAD=    path to source
  143. ; $9=      a variable for use in Pmm.Cfg. NOTE that vc must compiled with -DAMIGA
  144. ; $$=      Path and name for the executable. You give little finger, I take the complete
  145. ;          hand, or more! vbcc is able to create versions for 8 cpu-types, If you really
  146. ;          thing about this, you will see, for all cpu's there is only one fpu that will
  147. ;          combined with it. The 68000 or 010 without fpu, 68020 most mit 68881 (or none,
  148. ;          take 68010-version). 68030 in most versions are combined with 68882 (if 881
  149. ;          use 020-version...) and so on. The result of thing so are 6 versions for
  150. ;          mc68k and the ppc. The ppc can be elf and used with PowerUp. Or elh for the
  151. ;          WarpUP/WarpOS. Since vbcc 0.6c both systems useable with vbcc and so, there
  152. ;          will be 8 programs to make. Please, write a makefile, compiling vc with
  153. ;          checking all included .h-files (this demo show the work on .h-files at the
  154. ;          standard-includes). OK, also, makefile, 8 cpu-types, all create single or
  155. ;          all, check includes, update the includes with a depend-scanner, create
  156. ;          prototypes, hold the objects for all 8 versions, hold all 8 created
  157. ;          programs, copy 3 or 4 after build directly to a special path and if you do
  158. ;          that hard work, please change a .h-file. Good, if you remember what
  159. ;          thing all to do for makefile, now note this:
  160. ;          ADOSLIB: LIB 100 .c-files, ca. 1000 .h-files, 8 cpu's,  .o-files hold
  161. ;          Port:    EXE 124 .c-files, ca  1400 .h-files, 8 cpu's, .o-files hold
  162. ;          And now thing back to makefile with full depending's.
  163. ;          Nobody do that work manually (and without errors!). For Pmm you do the
  164. ;          same thing (not more) as now demonstrated for vc:
  165. ;          First set BEGIN and a label (this is the name for pmm. Input this name
  166. ;          will start the make. Best you take the real programname, here vc. Pmm
  167. ;          can compile from every position, so the pathname must be set. Look PFAD=
  168. ;          for path (PFAD is german word for path. In a future release both word
  169. ;          will work. $9 add to the standard-defines set now -DAMIGA (else we
  170. ;          create a unix-version). For all 8 CPU-Versions you see the pathes and
  171. ;          the executables. from sourcedir a out-dir obj will created and in obj
  172. ;          a subdir for each cpu-type (the will be stored .o and executable). This
  173. ;          is so set for my big programs.
  174. ; $L       link-lib, addon to standard, not active in this demo, vc don't use it.
  175. ;          Bevor reaktive, change to your own addon-libs's.
  176. ; $o       Filename for linker-obj-files
  177. ; X0       Versionsdumper start here. A Revision-control later come IN Pmm.
  178. ; Y0       Copy the 68040-version to vbcc-bin-dir. (But not use the realname to
  179. ;          make the demo useable without risiko. At END of the demo you see, 4
  180. ;          from 8 versions that build will be also copy to another name and
  181. ;          place.
  182. ;
  183. :BEGIN vc
  184. PFAD=vbcc://frontend
  185. $9=-DAMIGA
  186. 1%$$=obj/000/vc
  187. 2%$$=obj/010/vc
  188. 3%$$=obj/020/vc
  189. 4%$$=obj/030/vc
  190. 5%$$=obj/040/vc
  191. 6%$$=obj/060/vc
  192. 7%$$=obj/ppc/vc.elf
  193. 8%$$=obj/wos/vc
  194. ;
  195. ;     Addon link-libs, only to see how you use own libs.
  196. ;
  197. ;1%$L=-Bsymbolic Lib:DOSLIB_000.Lib Lib:All.Lib
  198. ;2%$L=-Bsymbolic Lib:DOSLIB_010.Lib Lib:All.Lib
  199. ;3%$L=-Bsymbolic Lib:DOSLIB_020.Lib Lib:All.Lib
  200. ;4%$L=-Bsymbolic Lib:DOSLIB_030.Lib Lib:All.Lib
  201. ;5%$L=-Bsymbolic Lib:DOSLIB_040.Lib Lib:All_040.Lib
  202. ;6%$L=-Bsymbolic Lib:DOSLIB_060.Lib Lib:All_040.Lib
  203. ;7%$L=-Bdynamic Lib:DOSLIB_ppc.a Lib:All_ppc.a
  204. ;8%$L=-Bsymbolic Lib:DOSLIB_wos.Lib Lib:All_wos.Lib
  205. $o=T:LinkVC
  206. 5%X0=Echo "I do nothing, but you must know, normally here starts the versiondumper*Nif the 68040-version must new compiled."
  207. 1%Y0=Copy obj/000/vc vbcc://bin/vc_000
  208. 5%Y0=Copy obj/040/vc vbcc://bin/vc_040
  209. 7%Y0=Copy obj/ppc/vc.elf vbcc://bin/vc_ppc
  210. 8%Y0=Copy obj/040/vc vbcc://bin/vc_wos
  211. :END
  212. ;
  213. ; that's it with 20-30 lines (cut, paste, edit) you can add a program to make here.
  214. ; source read in from Pmm and dependings will create also. Pmm takes the full control
  215. ; on it all. Normal I create the prototypes from script. The Script can found in batch
  216. ; -dir, Add a line like this directly bevor END
  217. ; 5%X5=Execute Pmm:Batch/ManProto.s vbcc://frontend MyInclude:vc_protos.h
  218. ;
  219.